package com.crm.system.service.orderManager;

import com.crm.common.model.DhPageInfo;
import com.crm.model.entity.orderManager.CustomerOrderInvoice;
import com.crm.model.entity.orderManager.CustomerOrderInvoiceLog;
import com.crm.model.qo.customerManager.CustomerReturnQO;
import com.crm.model.qo.orderManager.OrderInvoiceQO;
import com.crm.model.vo.activityManager.CustomerProductGiftActivityVO;
import com.crm.model.vo.orderManager.ApplyOrderInvoiceInfoVO;
import com.crm.model.vo.orderManager.OrderInvoiceVO;
import com.crm.model.vo.orderManager.PtInvoiceBlueResultVO;

import java.util.List;

/**
 * @Author:chaifuyou
 * @Date: 2021/4/26 11:41
 */
public interface CustomerOrderInvoiceService {

    /**
     * 新增发票申请
     * @param customerOrderInvoice
     */
    void addOrderInvoice(CustomerOrderInvoice customerOrderInvoice);

    /**
     *查询开票记录
     * @param pageIndex
     * @param pageSize
     * @param sortName
     * @param sortOrder
     * @param qo
     * @return
     */
    DhPageInfo<OrderInvoiceVO> selectOrderInvoiceList(Integer pageIndex, Integer pageSize, String sortName, String sortOrder, OrderInvoiceQO qo);

    /**
     * 修改开票审批状态
     * @param id
     * @param type
     */
    void updateExamineStatus(String id, String type);

    /**
     * 根据id查询发票信息
     * @param id
     * @return
     */
    CustomerOrderInvoice selectByPrimaryKey(String id);

    /**
     * 删除开票信息
     * @param id
     */
    void delOrderInvoice(String id);

    /**
     * 查看发票申请详情
     * @param chsCustomerOrderInvoiceId
     * @return
     */
    ApplyOrderInvoiceInfoVO selectApplyOrderInvoiceInfo(String chsCustomerOrderInvoiceId);

    /**
     * 财务-新增开票信息记录
     * @param customerOrderInvoiceLog
     */
    PtInvoiceBlueResultVO addOrderInvoiceLog(List<CustomerOrderInvoiceLog> customerOrderInvoiceLog);
}
